Digital signals preferably have relatively sharp, square wave forms representing two or more logic levels. However, line capacitance, noise and the like can cause attenuation of the digital signals and a corresponding “rounding” of the sharp transitions between logic levels. Accordingly, upon receipt of a digital signal it is often desirable to restore the signals to their original shape by de-attenuating the signal.
Similarly, analog signals are often attenuated during transmission. In a variety of applications, it is necessary or desirable to restore analog signals to their pre-transmission waveforms prior to further signal processing.
Finite impulse response (FIR) filters are widely used for various applications. One application is a discrete linear equalizer, which is used to de-attenuate digital and analog signals in communications systems and integrated circuits. Linear equalizers can be used to restore a signal by taking N samples of the signal over a discrete time window, multiplying each successive input sample Xi by a weighting coefficient Ai, and outputting the sum of the products. The successive data outputs of an FIR filter is calculated asY1=i=1ΣNAiXiY2=i=1ΣNAiXi+1Y3=i=1ΣNAiXi+2and so on. The variable N accordingly defines the number of “stages” in the FIR filter. When N=3, an FIR filter weighs the current signal against two previously received signals and outputs a weighted average digital signal. Optionally, successive samples can be included in the weighted average.
The digital signal filtering accomplished by such weighted averaging can be readily appreciated by considering a 5V digital source signal comprising data points 0V, 0V, 0V, 5V. During transmission, that signal attenuates and becomes, in a simplified example, 0V, 0V, 2.5V, 5V. A three stage FIR filter, upon receiving the 2.5V data point, can combine that data point with the weighted products of the two previously received data points. The FIR output will be less than 2.5V by a factor dictated by the weighting constants, and the attenuation of the signal will be thereby counteracted. By appropriate selection of the weighting constants Ai and appropriate post-filtration amplification, the attenuated signal can be restored to its original waveform, or 0V, 0V, 0V, 5V.
Early FIR filters were implemented with shift register delay lines that accepted analog input signals. Samples of the analog signals were tapped at various points along the shift registers and the samples were weighted and summed as explained above to provide the desired output. Another approach to FIR filtration involves storing successive analog samples in sample and hold cells and applying tap weights with MDAC's (multiplying digital to analog converters) and associated shift registers that store the weighting constant operands.
A more recent approach has been to store the weighting constants and input data points in random access memory, or RAM. The constants and data points are output to a multiplier. The first product is sent to an accumulator and the next product is sent to an adder to be added to the contents of the accumulator, after which the resulting sum is returned to the accumulator. The process repeats until a pre-selected number of products are summed, at which time the contents of the accumulator are output as a filtered data point.
Like reference symbols in the various drawings indicate like elements.